Generating building designs that optimize productivity of the building

ABSTRACT

One embodiment sets forth a computer-implemented method for measuring productivity in buildings and workplaces. The method includes receiving workstation data for a plurality of workstations for the building and operation data for a plurality of operations for the building; generating a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation; generating, for each operation of the plurality of operations, a respective productivity value based on the workstation data, the operation data, and the locations of the plurality of workstations; and calculating, based on the productivity values of the plurality of operations, one or more overall productivity values associated with the building layout.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the priority benefit of the United States Provisional Patent Application having Ser. No. 62/937,190 (Attorney Docket AUTO1468USL) and filed on Nov. 18, 2019. The subject matter of this related application is hereby incorporated herein by reference.

BACKGROUND Field of the Various Embodiments

The present invention relates generally to computer science and computer-aided design and, more specifically, to computer-implemented techniques for generating building designs that optimize productivity of the building.

Description of the Related Art

Generating a building design and layout, such as for a building or workplace, oftentimes is a complex process where many different design goals as well as numerous constraints and requirements must be considered. For example, when designing a building or other similarly intricate industrial building, a designer has to consider, among other things, operating requirements, production requirements, architectural and engineering constraints, cost constraints, and building site constraints.

With respect to the operating requirements of a typical industrial building, the layout of a building affects the overall of the productivity of the building. For example, the placement of workstations, supplies, corridors, and tracks within the building affect how building workers navigate the building while performing tasks. Additionally, the building may be used to create multiple components, and building operations may include different schedules, work shifts, and tasks, which result in complex flows of building personnel and parts. When designing such a building, simulation methods, such as productivity simulation, that are incorporated into computer-aided design (CAD) software are typically used by a designer to model and simulate airflow and heat transfer of the building prior to construction. In this way, the designer can assess the effectiveness of a layout in terms of productivity of the building.

One drawback to using conventional CAD software when designing industrial buildings is that much of the information needed to properly model and simulate the productivity of a building via the simulation methods incorporated into conventional CAD software is not available or determined until the end of the building design process. In particular, due to the various elements that affect productivity in a building, typical approaches for measuring productivity rely on tracking and measuring actual productivity after a layout is implemented and in use. As a result, generating layouts for an industrial building using conventional CAD software involves an ad-hoc trial-and-error approach.

In the trial-and-error approach of using CAD software to design layouts, each layout must be designed and implemented before productivity can be measured. Changes to productivity caused by adjustments to the layout or by different layouts cannot be determined until adjustments to the layout or a new layout has been implemented. If a new or modified layout results in a decrease in productivity, the decrease is not detected until after the new or modified layout has already been implemented, which is undesirable given the amount of time and effort taken to implement a building layout. In addition, unless each change to the layout is small or incremental, determining which changes to which features of the layout resulted in an increase or decrease in productivity is difficult to determine. As a result, the building layouts industrial buildings generated using conventional CAD software typically fail to provide optimal levels of productivity and efficiency for those buildings.

As the foregoing illustrates, what is needed in the art are more effective techniques for generating layouts for buildings that account for productivity of those buildings.

SUMMARY

One embodiment of the present application sets forth a computer-implemented method for measuring productivity in buildings and workplaces. The method includes receiving workstation data for a plurality of workstations for the building and operation data for a plurality of operations for the building; generating a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation; generating, for each operation of the plurality of operations, a respective productivity value based on the workstation data, the operation data, and the locations of the plurality of workstations; and calculating, based on the productivity values of the plurality of operations, one or more overall productivity values associated with the building layout.

At least one technical advantage of the disclosed techniques relative to the prior art is that the disclosed techniques can be incorporated into a CAD application to enable the CAD application to automatically explore a design space to identify building layouts that optimize productivity of the building. Accordingly, with the disclosed techniques, a CAD application can generate a substantially larger number of building designs that, for example, are optimized for productivity in the specific function of the building, relative to a conventional CAD application. This functionality, which is not available in conventional CAD applications, increases the likelihood that an optimal layout design can be automatically generated and identified for a given building design. These technical advantages represent one or more tangible and meaningful technological improvements over conventional CAD applications.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the various embodiments can be understood in detail, a more particular description of the inventive concepts, briefly summarized above, may be had by reference to various embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of the inventive concepts and are therefore not to be considered limiting of scope in any way, and that there are other equally effective embodiments.

FIG. 1 is a schematic diagram illustrating a computing system configured to implement one or more aspects of the present disclosure.

FIG. 2 is a more detailed illustration of the database and productivity calculation engine of FIG. 1, according to various embodiments of the present disclosure.

FIG. 3 is a flowchart of method steps for productivity calculation performed by the productivity calculation engine of FIG. 1, according to various embodiments of the present disclosure.

FIG. 4 is a flowchart of method steps for layout generation performed by the productivity calculation engine of FIG. 1, according to various embodiments of the present disclosure.

FIG. 5 is a flowchart of method steps for operation productivity and overall productivity calculation performed by the productivity calculation engine of FIG. 1, according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth to provide a more thorough understanding of the various embodiments. However, it will be apparent to one of skilled in the art that the inventive concepts may be practiced without one or more of these specific details.

FIG. 1 illustrates a computing device 100 configured to implement one or more aspects of the present disclosure. As shown, computing device 100 includes an interconnect (bus) 112 that connects one or more processing units 102, an input/output (I/O) device interface 104 coupled to one or more input/output (I/O) devices 108, memory 116, a storage 114, and a network interface 106.

Computing device 100 includes a desktop computer, a laptop computer, a smart phone, a personal digital assistant (PDA), tablet computer, or any other type of computing device configured to receive input, process data, and optionally display images, and is suitable for practicing one or more embodiments. Computing device 100 described herein is illustrative and that any other technically feasible configurations fall within the scope of the present disclosure.

Processing unit(s) 102 includes any suitable processor implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), an artificial intelligence (AI) accelerator, any other type of processing unit, or a combination of different processing units, such as a CPU configured to operate in conjunction with a GPU. In general, processing unit(s) 102 may be any technically feasible hardware unit capable of processing data and/or executing software applications. Further, in the context of this disclosure, the computing elements shown in computing device 100 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executing within a computing cloud.

In one embodiment, I/O devices 108 include devices capable of providing input, such as a keyboard, a mouse, a touch-sensitive screen, and so forth, as well as devices capable of providing output, such as a display device. Additionally, I/O devices 108 may include devices capable of both receiving input and providing output, such as a touchscreen, a universal serial bus (USB) port, and so forth. I/O devices 108 may be configured to receive various types of input from an end-user (e.g., a designer) of computing device 100, and to also provide various types of output to the end-user of computing device 100, such as displayed digital images or digital videos or text. In some embodiments, one or more of I/O devices 108 are configured to couple computing device 100 to a network 110.

Network 110 includes any technically feasible type of communications network that allows data to be exchanged between computing device 100 and external entities or devices, such as a web server or another networked computing device. For example, network 110 may include a wide area network (WAN), a local area network (LAN), a wireless (WiFi) network, and/or the Internet, among others.

Storage 114 includes non-volatile storage for applications and data, and may include fixed or removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-Ray, HD-DVD, or other magnetic, optical, or solid-state storage devices. Productivity calculation engine 118 and database 120 may be stored in storage 114 and loaded into memory 116 when executed.

Memory 116 includes a random-access memory (RAM) module, a flash memory unit, or any other type of memory unit or combination thereof. Processing unit(s) 102, I/O device interface 104, and network interface 106 are configured to read data from and write data to memory 116. Memory 116 includes various software programs that can be executed by processor(s) 102 and application data associated with said software programs, including productivity calculation engine 118 and database 120. Productivity calculation engine 118 and database 120 are described in further detail below with respect to FIG. 2.

FIG. 2 is a more detailed illustration of productivity calculation engine 118 and database 120 of FIG. 1, according to various embodiments of the present disclosure. As shown, productivity calculation engine 118 includes, without limitation, layout generation module 220, analysis graph generation module 222, path generation module 224, simulation module 226, and layout productivity values 228.

Productivity calculation engine 118 automatically calculates one or more productivity values associated with a particular layout of a building, based on data describing the building and building operations. Each productivity value indicates an estimated measurement of the productivity of one or more operations when the one or more operations are performed in the building using the particular layout. In some embodiments, productivity calculation engine 118 is part of an application for designing or optimizing layouts of buildings such as buildings or other workplaces. In other embodiments, productivity calculating engine 118 is a separate application or tool from an application that is used to design or optimize layouts of buildings or other workplaces. Productivity calculation engine 118 may receive a building information generated by another application and generate productivity values based on the received building layout. For example, productivity calculation engine 118 may receive a 3D model of a building and generate one or more productivity values based on the 3D model of the building and information describing operations performed in the building. Additionally, productivity calculation engine 118 may provide the one or more productivity values to a user through a graphical user interface, or to other applications for further analysis of the building and the building layout.

In one or more embodiments, productivity calculation engine 118 obtains data describing the building, operations of the building, and other data that may be used by productivity calculation engine 118 to calculate productivity of the building from database 120. As shown in FIG. 1, database 120 includes, without limitation, operation data 210, workstation data 212, and geometry data 214.

Operation data 210 includes data describing one or more operations of the building. For example, data describing an operation may include data indicating workstations, operators, personnel, schedules, zones, positions, tools, storage facilities, parts, materials, equipment, transport requirements or restrictions, or other elements and features associated with the operation. Additionally, the data describing the operation may include data describing the elements and features associated with the operation, such as weights of parts and materials associated with the operation.

In one or more embodiments, the data describing an operation includes data describing a workflow of the operation. The data describing the workflow of the operation indicates the steps taken when performing the operation. Additionally, in some embodiments, the data describing the workflow of the operation indicates an order in which workstations, tools, equipment, and materials are accessed by workers when performing the steps of the operation. Additionally, in some embodiments, the data describing the workflow of the operation may indicate an amount of time spent when performing each step of the operation.

In one or more embodiments, each operation is associated with a plurality of operation tasks. The data describing an operation includes data indicating the plurality of operation tasks. Additionally, in some embodiments, the data describing the operation includes data describing the plurality of operation tasks. For example, data describing an operation task may include data indicating the operation associated with the task, workstations, operators, personnel, schedules, zones, positions, tools, storage facilities, parts, materials, equipment, transport requirements or restrictions, or other elements and features associated with the operation task. Additionally, the data describing the operation task may include data describing the elements and features associated with the operation task, such as weights of parts and materials associated with the operation task.

In one or more embodiments, the data describing an operation task includes data describing a workflow of the operation task. The data describing the workflow of the operation task indicates the steps taken when performing the operation task. Additionally, in some embodiments, the data describing the workflow of the operation task indicates an order in which workstations, tools, equipment, and materials are accessed by workers when performing the steps of the operation task. Additionally, in some embodiments, the data describing the workflow of the operation may indicate an amount of time spent when performing each step of the operation.

Workstation data 212 includes data describing one or more workstations or workspaces of the building. For example, data describing a workstation may include data indicating one or more operations associated with the workstation, one or more operation tasks associated with the workstation, dimensions of the workstation, a shape of the workstation, or other information related to the workstation.

In one or more embodiments, the data describing a workstation or workspace includes data describing location restrictions for the workstation or workspace. A location restriction indicates that the location of the workstation or workspace is dependent on the location or placement of other workspaces, workstations, tools or materials, storage facilities, transport, or other elements of the building. For an element, the location restriction may indicate that the workstation or workspace should be adjacent to the element, within a certain distance of the element, within the same zone or area of the building as the element, within a certain configuration with the element, or other location-based requirements.

Geometry data 214 includes data describing the building and/or site in which the layout is placed. For example, the data describing a building may include data indicating a size of the building, a shape of the building, a footprint of the building, an orientation of the building structural elements of the building, fixed equipment within the building and locations of the fixed equipment, and infrastructure of the building such as loading docks, entrances, exits, and mechanical systems. As another example, the data describing a site may include data indicating a size of the site, a shape of the site, an orientation of the site, fixed equipment within the site and locations of the fixed equipment, elevation(s) of the site, restriction(s) on the site, and infrastructure of the site such as roads and paths. In some embodiments, geometry data 214 includes a 3D model of the building and/or the site.

In some embodiments, geometry data 214 includes a layout indicating locations of workstations or workspaces within the building. The layout may be a layout that was generated by productivity calculation engine 118, a layout generated by another application or tool, or may be a layout designed by a user. In some embodiments, geometry data 214 includes a 3D model of the building, and the interior of the 3D model includes workstations and workspaces within the building. In some embodiments, productivity calculation engine 118 generates the layout for the building based on the information describing the building.

In operation, layout generation module receives operation data 210 and workstation data 212, and generates a layout 230. Layout 230 indicates locations within a building, such as a building, for a plurality of workstations or workspaces of the building. In some embodiments, layout 230 also indicates locations within the building of other rooms or elements of the building, such as storage facilities, tools, supplies, entrances, exits, elevators, stairs, material transport paths or structures, or other rooms or elements used by the plurality of operations.

In one or more embodiments, generating the layout 230 is based on a pre-defined building geometry. For example, geometry data 214 may include data indicating the size and shape of a building. As another example, geometry data 214 may include a 3D model or floorplan of the building. Layout generation module 220 receives geometry data 214 and determines locations for the plurality of workstations within the boundaries of the building indicated by the geometry data 214.

In one or more embodiments, generating the layout 230 is based on a pre-defined site geometry. For example, geometry data 214 may include data indicating the size and shape of a site. As another example, geometry data 214 may include a 3D model of the site or a site plan for the site. Layout generation module 220 receives geometry data 214 and determines locations for the plurality of workstations within the boundaries of the site indicated by the geometry data 214.

In one or more embodiments, generating the layout 230 includes generating geometry data for the building. The geometry data for the building may include data indicating a size and shape of the building, exterior walls of the building, interior walls of the building such as walls of workstations and other rooms, and sizes and shapes of pathways within the building such as stairs, transport paths, corridors, and hallways. For example, after determining locations for a plurality of workstations, layout generation module 220 may place exterior walls of the building around the plurality of workstations and place interior walls and pathways between the workstations.

In some embodiments, generating the layout 230 includes determining one or more location restrictions for a workstation and determining a location of the workstation based on the one or more location restrictions. Each location restriction indicates that the location of the workstation depends on the location or placement of another workspace, workstation, particular tools or materials, storage facility, transport, or other element of the building. Additionally, the location restriction may indicate that the workstation should be adjacent to the element, within a certain distance of the element, within the same zone or area of the building as the element, within a certain configuration with the element, or other location-based requirements. In an embodiment, determining the one or more location restrictions for the workstation includes determining, based on workstation data 212, whether the workstation is associated with any location restrictions. If the workstation is associated with a location restriction, then layout generation module 220 determines a location of the workstation based on the location of the element indicated by the location restriction and the location-based requirement indicated by the location restriction.

In one or more embodiments, to generate layout 230, layout generation module 220 selects a first workstation from the plurality of workstations. Layout generation module 220 determines a location for the first workstation. In some embodiments, determining a location for the first workstation is based on one or more of: the size and shape of the first workstation, the size and shape of the building, and the size and shape of the site. In some embodiments, the location for the first workstation may be selected randomly. For example, the location for the first workstation may be any available location within the building or site. In some embodiments, the location of the first workstation is selected from one or more pre-determined or pre-configured locations. For example, layout generation module 220 may always select the top-right corner of the building as the location for the first workstation. As another example, each corner of the building may be a potential location for the first workstation, and layout generation module 220 selects one of the corners of the building as the location for the first workstation.

Additionally, in some embodiments, layout generation module 220 determines an orientation of the first workstation. In some embodiments, determining an orientation for the first workstation is based on one or more of: the size and shape of the first workstation, the size and shape of the building, and the size and shape of the site. In some embodiments, the orientation for the first workstation may be selected randomly. For example, the orientation for the first workstation may be any direction where the access point or entrance to the workstation does not face a wall or other obstruction, or is a sufficient distance from a wall or other obstruction for a worker to access or enter the workstation. In some embodiments, the orientation of the first workstation is selected from one or more pre-determined or pre-configured orientations. For example, if the first workstation is located against a wall of the building, layout generation module 220 may always orient the first workstation so that the access point or entrance of the building is facing away from the wall.

In some embodiments, after determining the location for the first workstation, layout generation module 220 determines whether locations of any additional workstations depend on the location of the first workstation. In response to determining that locations of one or more additional workstations depend on the location of the first workstation, layout generation module 220 determines a respective location for each additional workstation of the one or more additional workstations based on the location of the first workstation.

In some embodiments, determining whether locations of any additional workstations depend on the location of the first workstation includes determining if any workstations are associated with a location restriction that specifies the first workstation. In response to determining that a second workstation is associated with a location restriction that specifies the first workstation, layout generation module 220 determines a location for the second workstation based on the location restriction and the location of the first workstation. Additionally, in some embodiments, layout generation module 220 may determine the location for the second workstation based on any additional location restrictions associated with the second workstation. If the second workstation is associated with location restrictions that specify other workstations whose location has not been determined, layout generation module 220 may determine the location for the second workstation after locations have been determined for the other workstations.

In some embodiments, determining whether locations of any additional workstations depend on the location of the first workstation includes determining if any workstations are associated with the same operation, operation category, or operation task as the first workstation. In response to determining that a second workstation is associated with the same operation, operation category, or operation task as the first workstation, layout generation module 220 determines a location for the second workstation based on the location of the first workstation. For example, workstations associated with the same operation, operation category, or operation task may be placed near each other in the layout. Additionally, in some embodiments, layout generation module 220 determines the location for the second workstation based on data describing the operation, operation category, or operation task. For example, the location of the second workstation may be based on an order in which the second workstation is accessed by an operation or operation task workflow, relative to the first workstation and other workstations used by the operation or operation task workflow.

In one or more embodiments, after layout generation module 220 determines a location for the first workstation and any additional workstations, layout generation module 220 selects a next workstation from any remaining workstations whose locations have not been determined. Layout generation module 220 determines a location for the next workstation and any additional workstations whose locations depend on the location of the next workstation. The above may be repeated until a respective location has been determined for all workstations of the plurality of workstations.

Analysis graph generation module 222 receives layout 230, operation data 210, and workstation data 212, and generates an analysis graph 240. Analysis graph 240 comprises a plurality of nodes and a plurality of edges connecting the nodes. Each node of the plurality of nodes corresponds to a location of a workstation indicated by the layout. Additionally, in some embodiments, the analysis graph may include one or more nodes that correspond to the locations of other elements of the building layout such as workstation access points, tool and supply storage facilities, and elevators. Each edge of the graph corresponds to a pathway connecting two workstations, such as a hallway, corridor, stairway, or other transport path.

In one or more embodiments, each node of the plurality of nodes is associated with data describing the corresponding workstation or other element of the building layout. For example, data describing a workstation or building element may include data indicating the workstation or building element that corresponds to the node, one or more operations associated with the workstation or building element, one or more operation tasks associated with the workstation or building element, or other information related to the workstation or building element.

In one or more embodiments, each edge of the plurality of edges is associated with data describing the corresponding pathway. For example, data describing a pathway may include data indicating the pathway that corresponds to the edge, a length of the pathway, a width of the pathway, a height of the pathway, if the pathway is a transport path a component the transport path is configured to transport, or other information related to the pathway. In some embodiments, if a pathway includes a turn, the data describing the pathway may include data indicating an angle of the turn.

Path generation module 224 receives analysis graph 240 and operation data 210, and generates a plurality of paths 250. In some embodiments, each path 250 corresponds to a respective operation of the one or more operations. The path corresponding to an operation indicates, for the operation, a path through the building that may be traveled by a worker while the worker performs the operation. In some embodiments, each operation is associated with a plurality of operation task. Each path corresponds to a respective operation task of the one or more operations. The path corresponding to an operation task indicates, for the operation task, a path through the building that may be traveled by a worker while the worker performs the operation task.

In one or more embodiments, generating a path 250 for an operation or operation task is based on the analysis graph and the workstations used by the operation or operation task. Path generation module 224 determines, based on the operation data 210, one or more workstations used by the operation or operation task. Path generation module 224 calculates a shortest path through the analysis graph 240 that includes the nodes corresponding to the one or more workstations. Additionally, in some embodiments, path generation module 224 determines an order in which the workstations are accessed by workers when performing steps of the operation or operation task. Calculating the shortest path through the analysis graph 240 includes determining the shortest path that traverses the nodes corresponding to the one or more workstations in the order in which the one or more workstations are accessed by workers.

In one or more embodiments, generating a path 250 for an operation or operation task further includes determining, based on the operation data 210, one or more elements of the building, such as workstation access points, tool or supply storage facilities, equipment, materials, or elevators, that are used by the operation or operation task. Path generation module 224 calculates the shortest path through the analysis graph 240 that includes the one or more elements of the building and the one or more workstations. Additionally, in some embodiments, path generation module 224 determines an order in which the workstations and building elements are accessed by workers when performing steps of the operation or operation task. Calculating the shortest path through the analysis graph 240 includes determining the shortest path that traverses the nodes corresponding to the one or more workstations and the one or more elements of the building in the order in which the one or more workstations and the one or more elements of the building are accessed by workers.

In one or more embodiments, generating a path 250 for an operation or operation task further includes determining, based on the operation data 210, one or more transport requirements or restrictions associated with the operation or operation task. For example, a transport requirement or restriction may indicate that, for a particular step of the operation or operation task, a particular transport path must be used. As another example, the transport requirement or restriction may indicate that, for the particular step, corridors and hallways must be greater than a specified width, greater than a specified height, or cannot include turns smaller than a specified number of degrees. Calculating the shortest path through the analysis graph 240 includes determining the shortest path that follows the one or more transport requirements or restrictions associated with the operation or operation task.

Simulation module 226 receives the plurality of paths 250 and generates one or more layout productivity values 228 for the layout of the building. Each layout productivity value 228 indicates an estimated measurement of the productivity of one or more operations when the one or more operations are performed in the building using the particular layout.

In one or more embodiments, each layout productivity value 228 corresponds to a respective operation of one or more operations of the building. Generating the layout productivity value 228 includes determining a path 250 associated with the corresponding operation and calculating the layout productivity value 228 based on the path 250. In some embodiments, the layout productivity value corresponds to the length of the path. For example, the layout productivity value may be the number of edges traversed in the path. As another example, each edge in the analysis graph may be associated with a value, and the layout productivity value may be the sum of the values associated with edges traversed in the path. In other embodiments, the layout productivity value corresponds to the length of the pathways traversed by the path. For example, each edge in the analysis graph may be associated with a pathway and each pathway may be associated with data indicating a length of the pathway. The layout productivity value may be the sum of the lengths of pathways associated with edges traversed in the path.

In one or more embodiments, each operation is associated with a plurality of operation tasks, and each layout productivity value 228 indicates an overall estimated measurement of the productivity of the plurality of operation tasks associated with the corresponding operation. Generating the layout productivity value 228 includes determining a plurality of paths 250 associated with plurality of operation tasks of the corresponding operation and calculating a task productivity value associated with each operation task of the plurality of operation tasks based on the path corresponding to the operation task. In some embodiments, the layout productivity value 228 for an operation is a sum of the task productivity values associated with the plurality of operation tasks of the operation.

In some embodiments, a task productivity value corresponds to the length of the path. For example, the task productivity value may be the number of edges traversed in the path. As another example, each edge in the analysis graph may be associated with a value, and the task productivity value may be the sum of the values associated with edges traversed in the path. In other embodiments, the task productivity value corresponds to the length of the pathways traversed by the path. For example, each edge in the analysis graph may be associated with a pathway and each pathway may be associated with data indicating a length of the pathway. The task productivity value may be the sum of the lengths of pathways associated with edges traversed in the path.

In one or more embodiments, each layout productivity value 228 corresponds to a respective category or other grouping of the one or more operations of the building. Each layout productivity value 228 indicates an overall estimated measurement of productivity of operations in the corresponding category or group. Generating the layout productivity value 228 includes calculating an operation productivity value associated with each operation in the category or group. Calculating an operation productivity value associated with an operation may be performed in a manner similar to that discussed above for calculating a layout productivity value that is associated with a single operation. In some embodiments, the layout productivity value 228 is a sum of the operation productivity values associated with operations in the corresponding category or group.

In one or more embodiments, generating a layout productivity value includes determining whether a travel burden is associated with an operation or operation task. A travel burden may be, for example, if the operation or operation task includes traversing stairs, using an elevator, or transporting materials or parts over a specified weight. In response to determining that a travel burden is associated with the operation or operation task, simulation module 226 adjusts or weighs the productivity value associated with the operation or operation task. In some embodiments, adjusting or weighing the productivity value may be based on the severity of the travel burden. The amount that the productivity value for an operation or operation task is weighted or adjusted may be relative to the severity of the travel burden of other operations or operation tasks. For example, the productivity value for a first operation that includes transporting a heavy object may be scaled by a first amount, and the productivity value for a second operation that includes transporting a heavier object may be scaled by a second amount that is greater than the first amount.

In one or more embodiments, generating a layout productivity value includes determining a plurality of operations or operation tasks that are affected by congestion in the building when the plurality of operations are performed. Congestion in the building may occur, for example, if the plurality of operations or operation tasks use the same pathway or the same workstation or other element of the building.

In some embodiments, determining the plurality operations or operation tasks that are affected by congestion includes determining that a set of paths traverse one or more of the same edges. Each operation or operation task in the plurality of operations or operation tasks corresponds to a path in the set of paths. In some embodiments, simulation module 226 determines, for each path, a number of edges that are traversed by other paths. Additionally, simulation module 226 determines, for each edge that is traversed by other paths, a number of other paths that traverse the edge.

In some embodiments, determining the plurality of operations or operation tasks that are affected by congestion includes determining that a set of paths traverse one or more of the same nodes. Each operation or operation task in the plurality of operations or operation tasks corresponds to a path in the set of paths. In some embodiments, simulation module 226 determines, for each path, a number of nodes that are traversed by other paths. Additionally, simulation module 226 determines, for each node that is traversed by other paths, a number of other paths that traverse the node.

In some embodiments, determining that a set of paths traverse one or more of the same nodes and/or one or more of the same edges is based on schedules of the operations or operation tasks associated with the paths 250. If two paths traverse the same edge or not, but do not traverse the edge or node at the same time or during the same time period, then simulation module 226 determines that the two paths do not traverse the same edge or node for the purpose of determining whether the corresponding operations or operation tasks are affected by congestion. For example, if a first path and a second path both traverse an edge, but simulation module 226 the first path and second path traverse the edge at different times, then simulation module 226 may determine that the first path and the second path do not traverse the same edge when determining the set of paths that traverse one or more of the same edges.

In one or more embodiments, simulation module 226 determines, for each path, a time or time period in which the path traverses each edge and/or node of the path. For example, operation data 210 may include data indicating a schedule for an operation or operation task. Simulation module 226 determines the time or time period in which a path traverses each edge and/or node of the path based on the schedule of the corresponding operation or operation task. Additionally, in some embodiments, simulation module 226 determines an amount of time taken to traverse each edge and/or node of the path. Determining the time or time period in which the path traverses an edge or a node is further based on the amount of time required to traverse each edge and/or node of the path.

As an example, operation data 210 may include data indicating an amount of time a worker is expected to spend during each step of the operation or operation task. Simulation module 226 determines the amount of time in which a path traverses each node of the path based on the amount of time a worker is expected to spend at the location corresponding to the node when performing the corresponding operation or operation task. As another example, simulation module 226 may estimate an amount of time required to traverse a path based on a length of the path and an estimated movement speed of a worker on the pathway corresponding to the path.

In response to determining that the plurality of operations or operation tasks are affected by congestion, simulation module 226 adjusts or weighs the productivity value associated with each operation or operation task of the plurality of operations or operation tasks. Additionally, in some embodiments, adjusting or weighing the productivity value includes determining an amount of congestion that affects the operation or operation task and adjusting or weighing the productivity value based on the amount of congestion.

In some embodiments, the amount of congestion affecting an operation or operation task may be based on the number of edges traversed by the corresponding path that are traversed by other paths; for each edge that is traversed by other paths, the number of other paths that also traverse the edge; the number of nodes traversed by the corresponding path that are traversed by other paths; for each node that is traversed by other paths, the number of other paths that also traverse the node; or any combination thereof.

In some embodiments, the amount by which the productivity value of an operation or operation task is weighted or adjusted is relative to the amount of congestion affecting other operations or operation tasks. For example, a first operation may correspond to a path that traverses the same edge as a first number of other paths and a second operation may correspond to a path that traverses the same edge as a second number of other paths, where the second number is greater than the first number. The productivity value for the first operation may be scaled by a first amount, and the productivity value for the second operation may be scaled by a second amount that is greater than the first amount.

FIG. 3 is a flowchart of method steps for productivity calculation performed by the productivity calculation engine 118 of FIG. 1, according to various embodiments of the present disclosure. Although the method steps are described in conjunction with the systems of FIGS. 1 and 2, persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.

In step 302, layout generation module 220 receives workstation data 212 and operation data 210 from database 120. Workstation data 212 includes data describing a plurality of workstations of a building. Operation data 210 includes data describing one or more operations of the building.

In some embodiments, layout generation module 220 also receives geometry data 214 from database 120. In other embodiments, layout generation module 220 receives geometry data 214 from another application, tool, module, or data source. For example, layout generation module 220 may receive a 3D model of a building from an application that was used to generate or create the 3D model.

In step 304, layout generation module 220 generates a layout 230 based on the workstation data 212 and operation data 210. Generating the layout 230 is performed in a manner similar to that disclosed above with respect to layout generation module 220 and as further described below with regards to FIG. 4. In some embodiments, generating the layout 230 includes determining, for each workstation of a plurality of workstations of a building, a location of the workstation within the building. Additionally, in some embodiments, generating the layout 230 further includes determining locations within the building of other rooms or elements of the building, such as storage facilities, tools, supplies, entrances, exits, elevators, stairs, material transport paths or structures, or other rooms or elements used by the plurality of operations.

In some embodiments, generating the layout 230 is further based on geometry data 214. For example, generating the layout 230 may be based on a pre-defined building geometry. Layout generation module 220 determines locations for the plurality of workstations within the boundaries of the building indicated by the geometry data 214. As another example, generating the layout 230 may be based on a pre-defined site geometry. Layout generation module 220 determines locations for the plurality of workstations within the boundaries of the site indicated by the geometry data 214.

In some embodiments, generating the layout 230 includes generating geometry data for the building. The geometry data for the building may include data indicating a size and shape of the building, exterior walls of the building, interior walls of the building such as walls of workstations and other rooms, and sizes and shapes of pathways within the building such as stairs, transport paths, corridors, and hallways.

In some embodiments, generating the layout 230 includes generating geometry data for the building. The geometry data for the building may include data indicating a size and shape of the building, exterior walls of the building, interior walls of the building such as walls of workstations and other rooms, and sizes and shapes of pathways within the building such as stairs, transport paths, corridors, and hallways.

FIG. 4 is a flowchart of method steps for layout generation performed by the productivity calculation engine 118 of FIG. 1 and the layout generation module 220 of FIG. 2, according to various embodiments of the present disclosure. Although the method steps are described in conjunction with the systems of FIGS. 1 and 2, persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.

In step 402, layout generation module 220 selects a first workstation and determines a location of the first workstation. Determining the location of the first workstation is performed in a manner similar to that disclosed above with respect to layout generation module 220. In some embodiments, determining the location for the first workstation is based on one or more of: the size and shape of the first workstation, the size and shape of the building, and the size and shape of the site. In some embodiments, the location for the first workstation is selected randomly. In some embodiments, the location of the first workstation is selected from one or more pre-determined or pre-configured locations.

Additionally, in some embodiments, layout generation module 220 determines an orientation of the first workstation. In some embodiments, determining an orientation for the first workstation is based on one or more of: the size and shape of the first workstation, the size and shape of the building, and the size and shape of the site. In some embodiments, the orientation for the first workstation may be selected randomly. In some embodiments, the orientation of the first workstation is selected from one or more pre-determined or pre-configured locations.

In step 404, layout generation module 220 determines whether locations of any additional workstations depend on the location of the first workstation. Determining whether locations of any additional workstations depend on the location of the first workstation is performed in a manner similar to that disclosed above with respect to layout generation module 220.

In some embodiments, determining whether locations of any additional workstations depend on the location of the first workstation includes determining if any workstations are associated with a location restriction that specifies the first workstation.

In some embodiments, determining whether locations of any additional workstations depend on the location of the first workstation includes determining if any workstations are associated with the same operation, operation category, or operation task as the first workstation.

In step 406, layout generation module 220 determines locations of any additional workstations based on the location of the first workstation. Determining the locations of any additional workstations based on the location of the first workstation is performed in a manner similar to that disclosed above with respect to layout generation module 220.

In some embodiments, in response to determining that a location restriction specifies the first workstation, layout generation module 220 determines a second workstation that is associated with the location restriction. Layout generation module 220 determines a location for the second workstation based on the location restriction and the location of the first workstation. Additionally, in some embodiments, layout generation module 220 may determine the location for the second workstation based on any additional location restrictions associated with the second workstation. If the second workstation is associated with location restrictions that specify other workstations whose location has not been determined, layout generation module 220 may determine the location for the second workstation after locations have been determined for the other workstations

In some embodiments, in response to determining that a second workstation is associated with the same operation, operation category, or operation task as the first workstation, layout generation module 220 determines a location for the second workstation based on the location of the first workstation. Additionally, in some embodiments, layout generation module 220 determines the location for the second workstation based on data describing the operation, operation category, or operation task, such as an order in which the second workstation is accessed by an operation or operation task workflow relative to the first workstation and other workstations accessed by the operation or operation task workflow.

The above steps 402-406 are repeated for remaining workstations whose locations have not yet been determined, until a respective location has been determined for all workstations of the plurality of workstations.

Referring back to FIG. 3, in step 306, simulation module 226 generates, for each operation task of a plurality of operation tasks described in operation data 210, a productivity value for the operation task. Generating the productivity values for the plurality of operation tasks is performed in a manner similar to that disclosed above with respect to analysis graph generation module 222, path generation module 224, and simulation module 226, and as further described below with respect to FIG. 5.

FIG. 5 is a flowchart of method steps for operation productivity and overall productivity calculation performed by the productivity calculation engine 118 of FIG. 1 and the analysis graph generation module 222, path generation module 224, and simulation module 226 of FIG. 2, according to various embodiments of the present disclosure. Although the method steps are described in conjunction with the systems of FIGS. 1 and 2, persons skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present disclosure.

In step 502, analysis graph generation module 222 receives the layout 230. Additionally, analysis graph generation module 222 may receive operation data 210 and workstation data 212. In some embodiments, analysis graph generation module 222 receives the layout 230 from layout generation module 220. In other embodiments, analysis graph generation module 222 receives the layout 230 from another application, tool, or module that generated layout 230. For example, analysis graph generation module 222 may receive a layout 230 from an application that generates and optimizes building layouts.

In step 504, analysis graph generation module 222 generates an analysis graph 240 based on the layout 230. Analysis graph 240 comprises a plurality of nodes and a plurality of edges connecting the nodes. Each node of the plurality of nodes corresponds to a location of a workstation indicated by the layout. Additionally, in some embodiments, the analysis graph may include one or more nodes that correspond to the locations of other elements of the building layout such as workstation access points, tool and supply storage facilities, and elevators. Each edge of the graph corresponds to a pathway connecting two workstations, such as a hallway, corridor, stairway, or other transport path.

In some embodiments, generating the analysis graph 240 based on the layout 230 includes determining a plurality of locations corresponding to workstations and other building elements in the layout. Analysis graph generation module 222 generates a respective node of the analysis graph for each location of the plurality of locations. Additionally, in some embodiments, analysis graph generation module 222 generates, based on workstation data 212, data describing the workstation or other building element corresponding to the location and associates the data with the respective node.

In some embodiments, generating the analysis graph 240 based on the layout 230 includes determining a plurality of pathways in the layout. Analysis graph generation module 222 determines, for each pathway of the plurality of pathways, a first location and a second location connected by the pathway. Analysis graph generation module 222 generates a respective edge corresponding to the pathway, where the edge connects a first node corresponding to the first location and a second node corresponding to the second location. Additionally, in some embodiments, analysis graph generation module 222 generates, based on layout 230, data describing the pathway and associates the data with the respective edge.

In step 506, path generation module 224 determines workstation locations for an operation task of the plurality of operation tasks based on operation data 210. In some embodiments, path generation module 224 determines, based on the operation data 210, one or more workstations used by the operation task. Additionally, in some embodiments, path generation module 224 determines an order in which the workstations are accessed by workers when performing steps of the operation task.

In step 508, path generation module 224 determines additional building locations for the operation task. In some embodiments, path generation module 224 determines, based on the operation data 210, determining, one or more elements of the building, such as workstation access points, tool or supply storage facilities, equipment, materials, or elevators, that are used by the operation task. Additionally, in some embodiments, path generation module 224 determines an order in which the workstations and building elements are accessed by workers when performing steps of the operation task.

In step 510, path generation module 224 calculates a path for the operation or operation task. In some embodiments, path generation module 224 calculates a shortest path through the analysis graph 240 that includes the nodes corresponding to the one or more workstations used by the operation task and any additional building elements used by the operation task. Additionally, in some embodiments, path generation module 224 calculates the shortest path through the analysis graph 240 that traverses the nodes in the order in which the one or more workstations and additional building elements are accessed by workers when performing the operation task.

In some embodiments, calculating a path for the operation task further includes determining, based on the operation data 210, one or more transport requirements or restrictions associated with the operation task. Calculating the shortest path through the analysis graph 240 includes calculating the shortest path that follows the one or more transport requirements or restrictions associated with the operation task.

The above steps 506-510 are repeated for each operation task of the plurality of operations or operation tasks to generate a plurality of paths 250 corresponding to the plurality of operations or operation tasks.

In step 512, simulation module 226 calculates a plurality of task productivity values based on the plurality of paths 250. For each path in the plurality of paths, simulation module 226 calculates a respective task productivity value. In some embodiments, each task productivity value corresponds to a length of the corresponding path. In other embodiments, each task productivity value corresponds to the length of the pathways traversed by corresponding path.

In some embodiments, calculating a task productivity value for a path includes determining whether a travel burden is associated with the operation task corresponding to the path. In response to determining that a travel burden is associated with the operation or operation task, simulation module 226 adjusts or weighs the productivity value associated with the operation or operation task. In some embodiments, adjusting or weighing the productivity value may be based on the severity of the travel burden.

In some embodiments, calculating a task productivity value for a path includes determining whether the operation task corresponding to the path is affected by congestion. Determining whether the operation task is affected by congestion may include one or more of: determining whether edges traversed by the path are also traversed by other paths; determining whether nodes traversed by the path are also traversed by other paths; determining a time or time period in which the path traverses each edge and/or node; determining a time or time period in which other paths traverse each respective edge and/or node of the other paths. In response to determining that the operation task is affected by congestion, simulation module 226 adjusts or weighs the productivity value associated with each operation or operation task of the plurality of operations or operation tasks. Additionally, in some embodiments, adjusting or weighing the productivity value includes determining an amount of congestion that affects the operation or operation task and adjusting or weighing the productivity value based on the amount of congestion.

Referring back to FIG. 3, in step 308, simulation module 226 generates, based on the productivity values for the plurality of operations or operation tasks, one or more layout productivity values 228 for the layout 230. Generating the overall productivity values for the layout are performed in a manner similar to that disclosed above with respect to simulation module 226.

In one or more embodiments, each layout productivity value 228 corresponds to a respective operation of one or more operations of the building. Each operation is associated with a respective plurality of operation tasks. Generating the layout productivity value corresponding to an operation is based on the task productivity values associated with the respective plurality of operation tasks. In some embodiments, the layout productivity value 228 for an operation is a sum of the task productivity values associated with the plurality of operation tasks of the operation.

In sum, the computer system generates performance metrics related to a building, including one or more productivity values that indicate a level of productivity corresponding to a layout of a building. The computer system receives input data describing a plurality of workstations for the building and a plurality of operations that take place in the building.

In one approach, the computer system generates a layout of the building that specifies a location within the building for each workstation of the plurality of workstations based on the input data. For example, the data describing the plurality of workstations may indicate which workstations should be located adjacent to one another, or data describing the plurality of operations may indicate which workstations are needed for each operation. The computer system generates the layout based on which workstations should be located adjacent to one another and/or which workstations are needed to complete a given operation or set of operations. In another approach, the computer system receives a pre-defined layout that specifies the location within the building for each workstation of the plurality of workstations.

For each operation of the plurality of operations, the computer system calculates a productivity value. Calculating the productivity value for an operation may be based on any number of features of the layout of the building and the operation, such as the workstations required by the operation, the locations of the workstations required by the operation, the order of workstations required by the operation, the location of supplies and tools required by the operation, the amount of time spent by a worker at each workstation required by the operation, and the distance and travel time between workstations required by the operation.

Based on the productivity values for the plurality of operations, the computer system calculates one or more productivity values for the layout of the building. In some embodiments, each operation of the plurality of operations corresponds to a respective operational category of one or more operational categories. The computer system generates a respective productivity value for each operational category based on the productivity values of the operations that correspond to the operational category. In other embodiments, other methods for grouping operations into various categories may be used.

At least one advantage of the disclosed techniques is that the computer system measures productivity of a building or workplace based on a proposed layout or an automatically-generated layout for the building or workplace, without the layout being implemented and used in operation of the building or workplace. Unlike typical approaches that involve measuring productivity in the building or workplace after creating and implementing a layout, this approach allows quick analysis, measurement, and comparison of the productivity of multiple potential layouts. A user can utilize the generated measurements to further optimize potential layouts and quickly see how different adjustments to a layout affect the productivity. In addition, this approach may be used as part of a design application that iteratively generates improved layouts that meet specific design objectives. For example, the design application may utilize the productivity values for the different operational categories in order to determine a layout that is most effective for a particular operational category. As another example, the design application may utilize productivity values as one of several metrics to consider when evaluating different layouts. Accordingly, these technical advantages provide one or more technological advancements over prior art approaches.

1. In various embodiments, a computer-implemented method for determining performance metrics related to a building comprises receiving workstation data describing a plurality of workstations included in the building and operation data describing one or more of operations performed in the building, generating, based at least on the workstation data, a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation, generating, based on the building layout, an analysis graph, for each operation of the one or more operations, generating one or more paths based on the analysis graph, computing, based at least on the one or more paths, a productivity value associated with the operation.

2. The method of clause 1, where generating the one or more paths is further based on one or more workstations associated with the operation.

3. The method of clause 1 or 2, where generating the one or more paths is further based on one or more transport restrictions associated with the operation.

4. The method of any of clauses 1-3, where generating the one or more paths is further based on one or more workflows associated with the operation.

5. The method of any of clauses 1-4, where each operation of the one or more operations is associated with a plurality of operation tasks, and where generating the one or more paths includes generating, for each operation task of the plurality of operation tasks, a respective path corresponding to the operation task.

6. The method of any of clauses 1-5, where computing the productivity value associated with the operation includes computing, for each operation task of the plurality of operation tasks, a respective productivity value associated with the operation task based on the path corresponding to the operation task.

7. The method of any of clauses 1-6, further comprising, for each operation of the one or more operations, determining, based on the operation data, whether the operation is associated with a travel burden, and in response to determining that the operation is associated with the travel burden, adjusting the productivity value associated with the operation.

8. The method of any of clauses 1-7, further comprising, for each operation of the one or more operations, determining, based on the one or more paths, whether the operation is affected by congestion, and in response to determining that the operation is affected by congestion, adjusting the productivity value associated with the operation.

9. The method of any of clauses 1-8, further comprising computing one or more overall productivity values associated with the building layout based on the productivity values associated with the one or more operations.

10. The method of any of clauses 1-9, where generating the building layout includes determining a location of a first workstation of the plurality of workstations, determining that a location of a second workstation of the plurality of workstations depends on the location of the first workstation, and determining the location of the second workstation based on the location of the first workstation.

11. The method of any of clauses 1-10, where determining that the location of the second workstation depends on the location of the first workstation is based on a location restriction associated with the second workstation.

12. The method of any of clauses 1-11, where determining that the location of the second workstation depends on the location of the first workstation is based on one or more of an operation associated with the first workstation, an operation associated with the second workstation, a category associated with the first workstation, a category associated with the second workstation, an operation task associated with the first workstation, or an operation task associated with the second workstation.

13. In various embodiments, one or more non-transitory computer readable media store instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of receiving workstation data describing a plurality of workstations included in the building and operation data describing one or more of operations performed in the building, generating, based at least on the workstation data, a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation, generating, based on the building layout, an analysis graph, and for each operation of the one or more operations, generating one or more paths based on the analysis graph, and computing, based at least on the one or more paths, a productivity value associated with the operation.

14. The one or more non-transitory computer readable media of clause 13, where generating the one or more paths is further based on one or more workstations associated with the operation.

15. The one or more non-transitory computer readable media of clause 13 or 14, where generating the one or more paths is further based on one or more transport restrictions associated with the operation.

16. The one or more non-transitory computer readable media of any of clauses 13-15, where generating the one or more paths is further based on one or more workflows associated with the operation.

17. The one or more non-transitory computer readable media of any of clauses 13-16, where each operation of the one or more operations is associated with a plurality of operation tasks, and where generating the one or more paths includes generating, for each operation task of the plurality of operation tasks, a respective path corresponding to the operation task.

18. The one or more non-transitory computer readable media of any of clauses 13-17, where computing the productivity value associated with the operation includes computing, for each operation task of the plurality of operation tasks, a respective productivity value associated with the operation task based on the path corresponding to the operation task.

19. The one or more non-transitory computer readable media of any of clauses 13-18, further comprising, for each operation of the one or more operations, determining, based on the operation data, whether the operation is associated with a travel burden, and in response to determining that the operation is associated with the travel burden, adjusting the productivity value associated with the operation.

20. In various embodiments, a computer system comprises one or more memories storing instructions, and one or more computer processors for processing the instructions to receive workstation data describing a plurality of workstations included in the building and operation data describing one or more of operations performed in the building, generate, based at least on the workstation data, a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation, generate, based on the building layout, an analysis graph, and for each operation of the one or more operations, generate one or more paths based on the analysis graph, and compute, based at least on the one or more paths, a productivity value associated with the operation.

Any and all combinations of any of the claim elements recited in any of the claims and/or any elements described in this application, in any fashion, fall within the contemplated scope of the present invention and protection.

The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.

Aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module,” a “system,” or a “computer.” In addition, any hardware and/or software technique, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or set of circuits. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine. The instructions, when executed via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions/acts specified in the flowchart and/or block diagram block or blocks. Such processors may be, without limitation, general purpose processors, special-purpose processors, application-specific processors, or field-programmable gate arrays.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

While the preceding is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow. 

What is claimed is:
 1. A computer-implemented method for determining performance metrics related to a building, the method comprising: receiving workstation data describing a plurality of workstations included in the building and operation data describing one or more of operations performed in the building; generating, based at least on the workstation data, a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation; generating, based on the building layout, an analysis graph; and for each operation of the one or more operations: generating one or more paths based on the analysis graph; and computing, based at least on the one or more paths, a productivity value associated with the operation.
 2. The method of claim 1, wherein generating the one or more paths is further based on one or more workstations associated with the operation.
 3. The method of claim 1, wherein generating the one or more paths is further based on one or more transport restrictions associated with the operation.
 4. The method of claim 1, wherein generating the one or more paths is further based on one or more workflows associated with the operation.
 5. The method of claim 1, wherein each operation of the one or more operations is associated with a plurality of operation tasks, and wherein generating the one or more paths includes generating, for each operation task of the plurality of operation tasks, a respective path corresponding to the operation task.
 6. The method of claim 5, wherein computing the productivity value associated with the operation includes computing, for each operation task of the plurality of operation tasks, a respective productivity value associated with the operation task based on the path corresponding to the operation task.
 7. The method of claim 1, further comprising, for each operation of the one or more operations: determining, based on the operation data, whether the operation is associated with a travel burden; and in response to determining that the operation is associated with the travel burden, adjusting the productivity value associated with the operation.
 8. The method of claim 1, further comprising, for each operation of the one or more operations: determining, based on the one or more paths, whether the operation is affected by congestion; and in response to determining that the operation is affected by congestion, adjusting the productivity value associated with the operation.
 9. The method of claim 1, further comprising computing one or more overall productivity values associated with the building layout based on the productivity values associated with the one or more operations.
 10. The method of claim 1, wherein generating the building layout includes: determining a location of a first workstation of the plurality of workstations; determining that a location of a second workstation of the plurality of workstations depends on the location of the first workstation; and determining the location of the second workstation based on the location of the first workstation.
 11. The method of claim 10, wherein determining that the location of the second workstation depends on the location of the first workstation is based on a location restriction associated with the second workstation.
 12. The method of claim 10, wherein determining that the location of the second workstation depends on the location of the first workstation is based on one or more of: an operation associated with the first workstation, an operation associated with the second workstation, a category associated with the first workstation, a category associated with the second workstation, an operation task associated with the first workstation, or an operation task associated with the second workstation.
 13. One or more non-transitory computer readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving workstation data describing a plurality of workstations included in the building and operation data describing one or more of operations performed in the building; generating, based at least on the workstation data, a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation; generating, based on the building layout, an analysis graph; and for each operation of the one or more operations: generating one or more paths based on the analysis graph; and computing, based at least on the one or more paths, a productivity value associated with the operation.
 14. The one or more non-transitory computer readable media of claim 13, wherein generating the one or more paths is further based on one or more workstations associated with the operation.
 15. The one or more non-transitory computer readable media of claim 13, wherein generating the one or more paths is further based on one or more transport restrictions associated with the operation.
 16. The one or more non-transitory computer readable media of claim 13, wherein generating the one or more paths is further based on one or more workflows associated with the operation.
 17. The one or more non-transitory computer readable media of claim 13, wherein each operation of the one or more operations is associated with a plurality of operation tasks, and wherein generating the one or more paths includes generating, for each operation task of the plurality of operation tasks, a respective path corresponding to the operation task.
 18. The one or more non-transitory computer readable media of claim 17, wherein computing the productivity value associated with the operation includes computing, for each operation task of the plurality of operation tasks, a respective productivity value associated with the operation task based on the path corresponding to the operation task.
 19. The one or more non-transitory computer readable media of claim 13, further comprising, for each operation of the one or more operations: determining, based on the operation data, whether the operation is associated with a travel burden; and in response to determining that the operation is associated with the travel burden, adjusting the productivity value associated with the operation.
 20. A computer system, comprising: one or more memories storing instructions; and one or more computer processors for processing the instructions to: receive workstation data describing a plurality of workstations included in the building and operation data describing one or more of operations performed in the building; generate, based at least on the workstation data, a building layout specifying, for each workstation of the plurality of workstations, a respective location of the workstation; generate, based on the building layout, an analysis graph; and for each operation of the one or more operations: generate one or more paths based on the analysis graph; and compute, based at least on the one or more paths, a productivity value associated with the operation. 